/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package EntityState;

import java.io.Serializable;

/**
 *
 * @author James
 */
public class ReservableUnitDetailsState implements Serializable {
    private long id;
    private int  reservationNoShowFee; // dollar * 100 + cents ($2.5 = 250)
    private int  reservationCancelFee; // postive: dollar * 100 + cents ($2.5 = 250), negative: percentage of the items paid
    private int  reservableMinimumLength; // postive: number of 30-minute slots, negative: number of days, 0: reservation not allowed
    private int  reservableMaximumLength; // postive: number of 30-minute slots, negative: number of days, 0: reservation not allowed
    private int  reservationMinimumLeadTime; // postive: number of 30-minute slots, negative: number of days
    private int  reservationMaximumLeadTime; // postive: number of 30-minute slots, negative: number of days
    private int  numOfCustomersPerUnit; // number of customers a unit can handle
    private int  numOfAvailableUnits;   //number of available units at any specific point of time
    private long startedDate;
    private long stoppedDate;

    public ReservableUnitDetailsState(long id, int reservationNoShowFee, int reservationCancelFee, int reservableMinimumLength, int reservableMaximumLength, int reservationMinimumLeadTime, int reservationMaximumLeadTime, int numOfCustomersPerUnit) {
        this.id                         = id;
        this.reservationNoShowFee       = reservationNoShowFee;
        this.reservationCancelFee       = reservationCancelFee;
        this.reservableMinimumLength    = reservableMinimumLength;
        this.reservableMaximumLength    = reservableMaximumLength;
        this.reservationMinimumLeadTime = reservationMinimumLeadTime;
        this.reservationMaximumLeadTime = reservationMaximumLeadTime;
        this.numOfCustomersPerUnit      = numOfCustomersPerUnit;
    }
    
    public ReservableUnitDetailsState(long id, int reservationNoShowFee, int reservationCancelFee, int reservableMinimumLength, int reservableMaximumLength, int reservationMinimumLeadTime, int reservationMaximumLeadTime, int  numOfCustomersPerUnit, int numOfAvailableUnits, long startedDate) {
        this.id                         = id;
        this.reservationNoShowFee       = reservationNoShowFee;
        this.reservationCancelFee       = reservationCancelFee;
        this.reservableMinimumLength    = reservableMinimumLength;
        this.reservableMaximumLength    = reservableMaximumLength;
        this.reservationMinimumLeadTime = reservationMinimumLeadTime;
        this.reservationMaximumLeadTime = reservationMaximumLeadTime;
        this.numOfCustomersPerUnit      = numOfCustomersPerUnit;
        this.numOfAvailableUnits        = numOfAvailableUnits;
        this.startedDate                = startedDate;
    }
    
    //Getters and Setters
    public long getId() {
        return id;
    }

    public void setId(long id) {
        this.id = id;
    }

    public int getNumOfCustomersPerUnit() {
        return numOfCustomersPerUnit;
    }

    public void setNumOfCustomersPerUnit(int numOfCustomersPerUnit) {
        this.numOfCustomersPerUnit = numOfCustomersPerUnit;
    }

    public int getNumOfAvailableUnits() {
        return numOfAvailableUnits;
    }

    public void setNumOfAvailableUnits(int numOfAvailableUnits) {
        this.numOfAvailableUnits = numOfAvailableUnits;
    }

    public int getReservableMaximumLength() {
        return reservableMaximumLength;
    }

    public void setReservableMaximumLength(int reservableMaximumLength) {
        this.reservableMaximumLength = reservableMaximumLength;
    }

    public int getReservableMinimumLength() {
        return reservableMinimumLength;
    }

    public void setReservableMinimumLength(int reservableMinimumLength) {
        this.reservableMinimumLength = reservableMinimumLength;
    }

    public int getReservationCancelFee() {
        return reservationCancelFee;
    }

    public void setReservationCancelFee(int reservationCancelFee) {
        this.reservationCancelFee = reservationCancelFee;
    }

    public int getReservationMaximumLeadTime() {
        return reservationMaximumLeadTime;
    }

    public void setReservationMaximumLeadTime(int reservationMaximumLeadTime) {
        this.reservationMaximumLeadTime = reservationMaximumLeadTime;
    }

    public int getReservationMinimumLeadTime() {
        return reservationMinimumLeadTime;
    }

    public void setReservationMinimumLeadTime(int reservationMinimumLeadTime) {
        this.reservationMinimumLeadTime = reservationMinimumLeadTime;
    }

    public int getReservationNoShowFee() {
        return reservationNoShowFee;
    }

    public void setReservationNoShowFee(int reservationNoShowFee) {
        this.reservationNoShowFee = reservationNoShowFee;
    }

    public long getStartedDate() {
        return startedDate;
    }

    public void setStartedDate(long startedDate) {
        this.startedDate = startedDate;
    }

    public long getStoppedDate() {
        return stoppedDate;
    }

    public void setStoppedDate(long stoppedDate) {
        this.stoppedDate = stoppedDate;
    }
}
